/*
 * ReportData.java
 *
 * Created on 12 de Mar�o de 2003, 22:42
 */
package saci.reptil;

import javax.swing.table.TableModel;
import java.util.HashMap;

/**
 * Classe que representa a fonte de dados do relat�rio
 *
 * @author  saci
 */
public class ReportData {

    private TableModel data;
    private HashMap columns; // column index (used for column's call with String parameter :: toUpperCase() :-) dumb huh? lol)

    /**
     * Cria uma nova inst�ncia da classe
     */
    public ReportData(TableModel tm) {
        getModelColumns(tm);
    }

    private void getModelColumns(TableModel tm) {
        this.data = tm;

        // ==== Column Index
        columns = new HashMap();

        for (int i = 0; i < tm.getColumnCount(); i++) {
            columns.put(tm.getColumnName(i).toUpperCase(), new Integer(i));
        }
        // Column Index ====
    }

    /**
     * Retorna a quantidade de linhas de dados
     */
    public int size() {
        return data.getRowCount();
    }

    /**
     * Retorna o valor da linha e coluna
     */
    public Object get(int row, String column) {
        return data.getValueAt(row, ((Integer) columns.get(column.toUpperCase())).intValue());
    }
}
